"""
*args：在a，b两个参数接收完毕之后其他无名称的参数会封装到args中形成元组
**kwargs：封装为字典
"""


def test(a, b, *args, **kwargs):
    print(a)
    print(b)
    print(args)
    print(kwargs)

    # 这是错误的传参方式，最终两个参数都会当做独立参数封装到args的元组中，kwargs为空
    # test2(args, kwargs)

    # 正确传参方式：称为拆包
    test2(*args, **kwargs)


def test2(*args, **kwargs):
    print(args)
    print(kwargs)


def main():
    test(1, 2, 3, 4, 5, name="fauks", age=12)


if __name__ == '__main__':
    main()
